package com.addplus.townmall.server.api.model.town;

import com.addplus.townmall.server.api.model.base.BaseRestModel;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 商城订单表
 * </p>
 *
 * @author zhangjiehang
 * @since 2018-09-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("town_order")
public class Order extends BaseRestModel {

    private static final long serialVersionUID = 1L;

    /**
     * 订单流水号
     */
    private String orderNumber;

    /**
     * 订单父流水号
     */
    private String orderParentNumber;

    /**
     * 订单状态(1:未付款,2:已付款,3:待发货,4:已发货,5:交易成功,6:交易关闭)
     */
    private Integer orderStatus;

    /**
     * 订单商品类型(1:普通商品 2:礼品卡 3:会员卡)
     */
    private Integer orderProductType;

    /**
     * 订单类型(1:在线支付 2:货到付款)
     */
    private Integer orderType;

    /**
     * 订单关闭原因
     */
    private String closeReason;

    /**
     * 商家会员主键id
     */
    private Integer memberId;

    /**
     * 商家会员名称
     */
    private String memberName;

    /**
     * 商家会员留言
     */
    private String memberRemark;

    /**
     * 商品店铺主键id
     */
    private Integer storeId;

    /**
     * 个人商品店铺主键id
     */
    private Integer personalStoreId;

    /**
     * 店铺LOGO路径
     */
    private String iconPath;

    /**
     * 商品店铺名称
     */
    private String storeName;

    /**
     * 商家电话
     */
    private String sellerPhone;

    /**
     * 商家发货地址
     */
    private String sellerAddress;

    /**
     * 商家说明
     */
    private String sellerRemark;

    /**
     * 快递公司主键id
     */
    private Integer shopCourierId;

    /**
     * 快递公司
     */
    private String shopCourierName;

    /**
     * 运费
     */
    private BigDecimal freight;

    /**
     * 物流订单号
     */
    private String shipOrderNumber;

    /**
     * 发货日期
     */
    private Date shippingDate;

    /**
     * 付款状态(1:未付款 2:正在付款 3:付款失败 4:已付款)
     */
    private Integer payStatus;

    /**
     * 付款类型
     */
    private Integer payTypeId;

    /**
     * 付款类型名称
     */
    private String payTypeName;

    /**
     * 付款注释
     */
    private String payRemark;

    /**
     * 付款日期
     */
    private String payDate;

    /**
     * 确认收货状态：0=未确认，1=已确认收货
     */
    private Integer isConfirm;

    /**
     * 确认收货时间
     */
    private Date confirmTime;

    /**
     * 是否已评价：0=未评价，1=已评价
     */
    private Integer isComment;

    /**
     * 是否出库成功(0:否 1:是)
     */
    private Integer isOutTreasury;

    /**
     * 是否申请取消订单：0=否，1=申请取消订单
     */
    private Integer applyDelete;

    /**
     * 是否超过售后时间
     */
    private Integer isSale;

    /**
     * 支付接口返回的ID
     */
    private String gatewayOrderId;

    /**
     * 完成订单时间
     */
    private LocalDateTime finishDate;

    /**
     * 关闭订单时间
     */
    private LocalDateTime closeDate;

    /**
     * 订单超时时间
     */
    private Date timeoutDate;

    /**
     * 商品退货数量
     */
    private Integer shopRefundTotalNum;

    /**
     * 商品总数量
     */
    private Integer shopTotalNum;

    /**
     * 商品总金额
     */
    private BigDecimal shopTotalAmount;

    /**
     * 退款金额
     */
    private BigDecimal refundTotalAmount;

    /**
     * 佣金总金额
     */
    private BigDecimal commisTotalAmount;

    /**
     * 退还佣金总金额
     */
    private BigDecimal refundCommisAmount;

    /**
     * 来自哪个终端的订单
     */
    private Integer sourcePlatform;

    /**
     * 针对该订单的优惠金额（用于优惠券）
     */
    private BigDecimal discountAmount;

    /**
     * 修改前的价格
     */
    private BigDecimal beforeUpdatePrice;

    /**
     * 积分优惠金额
     */
    private BigDecimal integralDiscount;

    /**
     * 返回积分
     */
    private Integer returnIntegra;

    /**
     * 礼品卡用户主键id
     */
    private Integer giftMemberCardId;

    /**
     * 礼品卡支付金额
     */
    private BigDecimal giftCardAmount;

    /**
     * 支付金额总数
     */
    private BigDecimal payAmount;

    /**
     * 订单实付金额
     */
    private BigDecimal totalAmount;

    /**
     * 订单实收金额
     */
    private BigDecimal actualPayAmount;

    /**
     * 满额减金额
     */
    private BigDecimal fullDiscount;

    /**
     * 使用的优惠券Id
     */
    private Integer couponId;

    /**
     * 是否删除(0:否 1:是)
     */
    private Integer isDelete;

}
